{
"cells": [
{
"cell_type": "markdown",
"id": "05d1beeb",
"metadata": {},
"source": [
"# MusicBox Basic Workflow Tutorial\n",
"\n",
"Hello, and welcome to the MusicBox basic workflow tutorial! Here, we will be covering some basic usages of the MusicBox library."
]
},
{
"cell_type": "markdown",
"id": "c752b1cd",
"metadata": {},
"source": [
"## What is MusicBox?\n",
"\n",
"MusicBox is a library with a Python API for box modeling that builds on top of musica, a collection of modeling software that allows for robust modeling of chemistry in Earth's atmosphere.\n",
"\n",
"Boxes refer to a set of adjacent grid cells that represent the exchange of information."
]
},
{
"cell_type": "markdown",
"id": "59167a93",
"metadata": {},
"source": [
"## 1. Creating a Conda Environment (Optional)\n",
"\n",
"Before getting started, make sure your Python version is 3.10 or higher. You can optionally set up a conda environment. If you prefer to use an existing Python 3.10+ environment, you can skip to step 2.\n",
"\n",
"To create a new conda environment, execute these commands in your terminal:\n",
"\n",
"```\n",
"conda create --name music_box python=3.13\n",
"conda activate music_box\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "5ccc7e1b",
"metadata": {},
"source": [
"## 2. Downloading MusicBox\n",
"\n",
"To install MusicBox onto your device, run this tutorial\n",
"\n",
"```\n",
"pip install acom_music_box[tutorial] #bash\n",
"pip install 'acom_music_box[tutorial]' #zsh\n",
"```\n",
"\n",
"Note: Installing MusicBox will automatically install musica, a required dependency of MusicBox that is used throughout this tutorial."
]
},
{
"cell_type": "markdown",
"id": "f20cd18a",
"metadata": {},
"source": [
"## 3. Importing MusicBox\n",
"\n",
"To import your newly-downloaded MusicBox into a Python file, as well as some other libraries so that this demo can run:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "fd1b5247",
"metadata": {},
"outputs": [],
"source": [
"from acom_music_box import MusicBox\n",
"import musica.mechanism_configuration as mc\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"id": "f2488c7c",
"metadata": {},
"source": [
"This code cell may take upwards of 2 minutes to run on the first execution depending on your system, so do not fret if it feels a bit sluggish at first."
]
},
{
"cell_type": "markdown",
"id": "1ec851da",
"metadata": {},
"source": [
"## 4. Defining a System\n",
"\n",
"In MusicBox, a system is defined by a mechanism that includes:\n",
"* a set of species and their respective phases, and\n",
"* a set of reactions that the species participate in.\n",
"\n",
"The system is the fundamental building block of MusicBox and is your main concern when using this library.\n",
"\n",
"The following steps will walk you through:\n",
"* creating your own system,\n",
"* solving your system, and\n",
"* viewing and visualizing your results."
]
},
{
"cell_type": "markdown",
"id": "ab84f835",
"metadata": {},
"source": [
"### 4a. Defining Species\n",
"\n",
"A species is simply a reactant or product in a chemical reaction.\n",
"\n",
"You have the freedom to name a species anything in MusicBox, just make sure that it is logical to you.\n",
"\n",
"For extended documentation about the Species class, go [here](https://ncar-musica.readthedocs.io/en/latest/api/python.html#musica.mechanism_configuration.Species).\n",
"\n",
"Here is a snippet that defines three chemical species:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "654b7e30",
"metadata": {},
"outputs": [],
"source": [
"# Create each of the species that will be simulated and gas phase\n",
"X = mc.Species(name=\"X\")\n",
"Y = mc.Species(name=\"Y\")\n",
"Z = mc.Species(name=\"Z\")\n",
"species = {\"X\": X, \"Y\": Y, \"Z\": Z}\n",
"gas = mc.Phase(name=\"gas\", species=list(species.values()))"
]
},
{
"cell_type": "markdown",
"id": "9e6190b7",
"metadata": {},
"source": [
"This code block creates 3 species called X, Y, and Z and adds them to a dictionary called species.\n",
"\n",
"The variable name and the name of the species are not required to be the same, but it is strongly recommended so that your code is more organized.\n",
"\n",
"Next, a phase is created named \"gas\". In MusicBox, phases are essentially collections of species that are assumed to be well-mixed.\n",
"\n",
"**Note:** Creating the species dictionary and the phase is mandatory, as subsequent code relies on the data being bundled in specific object types."
]
},
{
"cell_type": "markdown",
"id": "1afce428",
"metadata": {},
"source": [
"### 4b. Defining Reactions\n",
"\n",
"A chemical reaction is a process in which a set of reactants transforms into a set of products.\n",
"\n",
"To define a reaction in MusicBox:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "bf790275",
"metadata": {},
"outputs": [],
"source": [
"# Define the Arrhenius reactions\n",
"arr1 = mc.Arrhenius(name=\"X->Y\", A=4.0e-3, C=50, reactants=[species[\"X\"]], products=[species[\"Y\"]], gas_phase=gas)\n",
"arr2 = mc.Arrhenius(name=\"Y->Z\", A=4.0e-3, C=50, reactants=[species[\"Y\"]], products=[species[\"Z\"]], gas_phase=gas)\n",
"rxns = {\"X->Y\": arr1, \"Y->Z\": arr2}"
]
},
{
"cell_type": "markdown",
"id": "00cb442b",
"metadata": {},
"source": [
"This code block uses the gas and species variables from the previous code block.\n",
"\n",
"Using the species and gas variables, it creates two reactions: arr1 and arr2.\n",
"\n",
"The arr1 variable represents the conversion of X (reactant) into Y (product) and defines Arrhenius rate constant parameters:\n",
"* **A**: Pre-exponential factor (4.0e-3 in this example)\n",
"* **C**: Temperature coefficient (50 in this example)\n",
"\n",
"The arr2 variable is just like arr1, but instead it represents the conversion of Y (reactant) into Z (product).\n",
"\n",
"These reactions are then bundled into a dictionary called rxns just like the species before.\n",
"\n",
"More information on the Arrhenius reaction can be found [here](https://mechanismconfiguration.readthedocs.io/en/latest/v1/reactions/arrhenius.html).\n",
"\n",
"**Note:** MusicBox allows for users to experiment with an array of reaction types.\n",
"\n",
"Go [here](https://mechanismconfiguration.readthedocs.io/en/latest/v1/reactions/index.html) to view a list of supported reactions and their parameters."
]
},
{
"cell_type": "markdown",
"id": "f465f101",
"metadata": {},
"source": [
"### 4c. Defining Mechanisms\n",
"\n",
"A mechanism represents a set of species with their respective phases and reactions.\n",
"\n",
"For extended documentation about the Mechanism class, go [here](https://ncar-musica.readthedocs.io/en/latest/user_guide/python/chemistry/index.html#mechanisms).\n",
"\n",
"To create a mechanism in MusicBox:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "25da888c",
"metadata": {},
"outputs": [],
"source": [
"# Create the mechanism that is defined by the species, phases, and reactions\n",
"mechanism = mc.Mechanism(name=\"tutorial_mechanism\", species=list(species.values()), phases=[gas], reactions=list(rxns.values()))"
]
},
{
"cell_type": "markdown",
"id": "b4ee16f5",
"metadata": {},
"source": [
"This code block builds upon the previous two functions, using the previously-created species, phases, and reactions as arguments.\n",
"\n",
"It simply creates a mechanism variable that represents an instance of the Mechanism class.\n",
"\n",
"The mechanism is first given a name, then the species, phase, and reactions are passed into their respective arguments."
]
},
{
"cell_type": "markdown",
"id": "6cbf0090",
"metadata": {},
"source": [
"## 5. Creating a Box Model\n",
"\n",
"Box models allow you to solve your previously-created mechanism under conditions that can change the reactions' rates over time.\n",
"\n",
"Each instance of the MusicBox class acts as an independent box model.\n",
"\n",
"You can also define the length of the simulations and the time steps.\n",
"\n",
"To initialize a new box model:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ae8134a6",
"metadata": {},
"outputs": [],
"source": [
"# Create the box model that contains the mechanism\n",
"box_model = MusicBox()\n",
"box_model.load_mechanism(mechanism)"
]
},
{
"cell_type": "markdown",
"id": "e1ecacc8",
"metadata": {},
"source": [
"This code block is straightforward, simply creating an instance of the MusicBox class and then loading the mechanism as an argument for the box model."
]
},
{
"cell_type": "markdown",
"id": "aa814af4",
"metadata": {},
"source": [
"### 5a. Adding Initial Conditions to Your Box Model\n",
"\n",
"The initial conditions of the model define the environment the mechanism takes place in at the start of the simulation.\n",
"\n",
"Some conditions that are recommended to define for your system include:\n",
"* the temperature, measured in Kelvin (K),\n",
"* the pressure, measured in Pascals (Pa), and\n",
"* the concentration of each of the species, measured in mol/m³.\n",
"\n",
"To set the initial conditions of your box model, use the `set_condition()` method with `time=0`:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3e83223d",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set the conditions of the box model at time = 0 s\n",
"box_model.set_condition(\n",
" time=0,\n",
" temperature=298.15, # Units: Kelvin (K)\n",
" pressure=101325.0, # Units: Pascals (Pa)\n",
" concentrations={ # Units: mol/m^3\n",
" \"X\": 3.75,\n",
" \"Y\": 5.0,\n",
" \"Z\": 2.5,\n",
" }\n",
")"
]
},
{
"cell_type": "markdown",
"id": "021d5e5d",
"metadata": {},
"source": [
"You provide a time value (0 for initial conditions), along with temperature, pressure, and each of the species' concentrations as keyword arguments. Air density is optional (by default it's calculated using the Ideal Gas Law)."
]
},
{
"cell_type": "markdown",
"id": "c49c4078",
"metadata": {},
"source": [
"### 5b. Adding Evolving Conditions to Your Box Model\n",
"\n",
"Evolving conditions allow you to change the environment of the mechanism at specific time points.\n",
"\n",
"These changes can include species concentration, temperature, pressure, etc.\n",
"\n",
"To create evolving conditions for your box model, use the same `set_condition()` method with a different time value:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "b157a3e8",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set the box model conditions at the defined time\n",
"box_model.set_condition(\n",
" time=100.0, # Units: Seconds (s)\n",
" temperature=275.0, # Units: Kelvin (K)\n",
" pressure=100100.0 # Units: Pascals (Pa)\n",
")"
]
},
{
"cell_type": "markdown",
"id": "9c7b120f",
"metadata": {},
"source": [
"This code block is similar to setting the initial conditions, but uses a different time value.\n",
"\n",
"The `set_condition()` method is called again with `time=100.0` to specify that these conditions (temperature and pressure changes) should take effect at 100 seconds into the simulation.\n",
"\n",
"You can call `set_condition()` multiple times with different time values to create a sequence of environmental changes throughout your simulation."
]
},
{
"cell_type": "markdown",
"id": "e4e87b99",
"metadata": {},
"source": [
"### 5c. Additional Box Model Configuration\n",
"\n",
"Box models contain some additional configuration options that need to be defined.\n",
"\n",
"These include:\n",
"* the simulation length,\n",
"* the chemistry step time, and\n",
"* the output step time.\n",
"\n",
"To set these configurations for your box model:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "6e00fa9a",
"metadata": {},
"outputs": [],
"source": [
"# Set the additional configuration options for the box model\n",
"box_model.box_model_options.simulation_length = 200 # Units: Seconds (s)\n",
"box_model.box_model_options.chem_step_time = 1 # Units: Seconds (s)\n",
"box_model.box_model_options.output_step_time = 20 # Units: Seconds (s)"
]
},
{
"cell_type": "markdown",
"id": "f5164733",
"metadata": {},
"source": [
"This code block sets some of the attributes of the box model's options, including:\n",
"\n",
"* **simulation_length:** the total duration of the simulation (in seconds),\n",
"* **chem_step_time:** the time interval between each chemistry calculation (in seconds), and\n",
"* **output_step_time:** the time interval between each output data point (in seconds).\n",
"\n",
"All three of these use seconds as their unit."
]
},
{
"cell_type": "markdown",
"id": "d20aa95a",
"metadata": {},
"source": [
"## 6. Solving Your Box Model\n",
"\n",
"Now, you are able to run and solve your newly-created box model.\n",
"\n",
"To solve your box model, simply call its `solve()` function:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7e09be6b",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" "
]
}
],
"source": [
"df = box_model.solve()"
]
},
{
"cell_type": "markdown",
"id": "5846cc70",
"metadata": {},
"source": [
"The `solve()` method returns a pandas DataFrame containing the simulation results."
]
},
{
"cell_type": "markdown",
"id": "4652b4ee",
"metadata": {},
"source": [
"## 7. View Outputs and Visualizations\n",
"The DataFrame includes the following columns:\n",
"\n",
"* **time.s** - Simulation time in seconds\n",
"* **ENV.temperature.K** - Temperature at each time step in Kelvin\n",
"* **ENV.pressure.Pa** - Pressure at each time step in Pascals\n",
"* **ENV.air number density.mol m-3** - Air density in mol/m³\n",
"* **CONC.X.mol m-3**, **CONC.Y.mol m-3**, **CONC.Z.mol m-3** - Species concentrations in mol/m³ for each species in your mechanism\n",
"\n",
"This structured format makes it easy to analyze, visualize, and export your simulation results.\n",
"\n",
"To view your solved model's data and a basic visualization of it:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "782b1107",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" time.s \n",
" ENV.temperature.K \n",
" ENV.pressure.Pa \n",
" ENV.air number density.mol m-3 \n",
" CONC.X.mol m-3 \n",
" CONC.Y.mol m-3 \n",
" CONC.Z.mol m-3 \n",
" \n",
" \n",
" \n",
" \n",
" count \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.000000 \n",
" 11.000000 \n",
" \n",
" \n",
" mean \n",
" 100.000000 \n",
" 287.627273 \n",
" 100768.181818 \n",
" 42.194541 \n",
" 2.439584 \n",
" 4.194061 \n",
" 4.616355 \n",
" \n",
" \n",
" std \n",
" 66.332496 \n",
" 12.089693 \n",
" 639.735386 \n",
" 1.517135 \n",
" 0.762650 \n",
" 0.572226 \n",
" 1.329958 \n",
" \n",
" \n",
" min \n",
" 0.000000 \n",
" 275.000000 \n",
" 100100.000000 \n",
" 40.874045 \n",
" 1.446236 \n",
" 3.306276 \n",
" 2.500000 \n",
" \n",
" \n",
" 25% \n",
" 50.000000 \n",
" 275.000000 \n",
" 100100.000000 \n",
" 40.874045 \n",
" 1.840420 \n",
" 3.761719 \n",
" 3.640977 \n",
" \n",
" \n",
" 50% \n",
" 100.000000 \n",
" 298.150000 \n",
" 101325.000000 \n",
" 40.874045 \n",
" 2.336660 \n",
" 4.220865 \n",
" 4.692475 \n",
" \n",
" \n",
" 75% \n",
" 150.000000 \n",
" 298.150000 \n",
" 101325.000000 \n",
" 43.779137 \n",
" 2.963461 \n",
" 4.645562 \n",
" 5.647861 \n",
" \n",
" \n",
" max \n",
" 200.000000 \n",
" 298.150000 \n",
" 101325.000000 \n",
" 43.779137 \n",
" 3.750000 \n",
" 5.000000 \n",
" 6.497488 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" time.s ENV.temperature.K ENV.pressure.Pa \\\n",
"count 11.000000 11.000000 11.000000 \n",
"mean 100.000000 287.627273 100768.181818 \n",
"std 66.332496 12.089693 639.735386 \n",
"min 0.000000 275.000000 100100.000000 \n",
"25% 50.000000 275.000000 100100.000000 \n",
"50% 100.000000 298.150000 101325.000000 \n",
"75% 150.000000 298.150000 101325.000000 \n",
"max 200.000000 298.150000 101325.000000 \n",
"\n",
" ENV.air number density.mol m-3 CONC.X.mol m-3 CONC.Y.mol m-3 \\\n",
"count 11.000000 11.000000 11.000000 \n",
"mean 42.194541 2.439584 4.194061 \n",
"std 1.517135 0.762650 0.572226 \n",
"min 40.874045 1.446236 3.306276 \n",
"25% 40.874045 1.840420 3.761719 \n",
"50% 40.874045 2.336660 4.220865 \n",
"75% 43.779137 2.963461 4.645562 \n",
"max 43.779137 3.750000 5.000000 \n",
"\n",
" CONC.Z.mol m-3 \n",
"count 11.000000 \n",
"mean 4.616355 \n",
"std 1.329958 \n",
"min 2.500000 \n",
"25% 3.640977 \n",
"50% 4.692475 \n",
"75% 5.647861 \n",
"max 6.497488 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" \n",
" time.s \n",
" ENV.temperature.K \n",
" ENV.pressure.Pa \n",
" ENV.air number density.mol m-3 \n",
" CONC.X.mol m-3 \n",
" CONC.Y.mol m-3 \n",
" CONC.Z.mol m-3 \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 0.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 3.750000 \n",
" 5.000000 \n",
" 2.500000 \n",
" \n",
" \n",
" 1 \n",
" 20.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 3.411490 \n",
" 4.871403 \n",
" 2.967107 \n",
" \n",
" \n",
" 2 \n",
" 40.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 3.103538 \n",
" 4.725280 \n",
" 3.421182 \n",
" \n",
" \n",
" 3 \n",
" 60.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 2.823383 \n",
" 4.565844 \n",
" 3.860773 \n",
" \n",
" \n",
" 4 \n",
" 80.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 2.568519 \n",
" 4.396687 \n",
" 4.284794 \n",
" \n",
" \n",
" 5 \n",
" 100.0 \n",
" 298.15 \n",
" 101325.0 \n",
" 40.874045 \n",
" 2.336660 \n",
" 4.220865 \n",
" 4.692475 \n",
" \n",
" \n",
" 6 \n",
" 120.0 \n",
" 275.00 \n",
" 100100.0 \n",
" 43.779137 \n",
" 2.122874 \n",
" 4.038383 \n",
" 5.088743 \n",
" \n",
" \n",
" 7 \n",
" 140.0 \n",
" 275.00 \n",
" 100100.0 \n",
" 43.779137 \n",
" 1.928648 \n",
" 3.853960 \n",
" 5.467392 \n",
" \n",
" \n",
" 8 \n",
" 160.0 \n",
" 275.00 \n",
" 100100.0 \n",
" 43.779137 \n",
" 1.752192 \n",
" 3.669479 \n",
" 5.828329 \n",
" \n",
" \n",
" 9 \n",
" 180.0 \n",
" 275.00 \n",
" 100100.0 \n",
" 43.779137 \n",
" 1.591880 \n",
" 3.486494 \n",
" 6.171626 \n",
" \n",
" \n",
" 10 \n",
" 200.0 \n",
" 275.00 \n",
" 100100.0 \n",
" 43.779137 \n",
" 1.446236 \n",
" 3.306276 \n",
" 6.497488 \n",
" \n",
" \n",
"
\n",
"
"
],
"text/plain": [
" time.s ENV.temperature.K ENV.pressure.Pa \\\n",
"0 0.0 298.15 101325.0 \n",
"1 20.0 298.15 101325.0 \n",
"2 40.0 298.15 101325.0 \n",
"3 60.0 298.15 101325.0 \n",
"4 80.0 298.15 101325.0 \n",
"5 100.0 298.15 101325.0 \n",
"6 120.0 275.00 100100.0 \n",
"7 140.0 275.00 100100.0 \n",
"8 160.0 275.00 100100.0 \n",
"9 180.0 275.00 100100.0 \n",
"10 200.0 275.00 100100.0 \n",
"\n",
" ENV.air number density.mol m-3 CONC.X.mol m-3 CONC.Y.mol m-3 \\\n",
"0 40.874045 3.750000 5.000000 \n",
"1 40.874045 3.411490 4.871403 \n",
"2 40.874045 3.103538 4.725280 \n",
"3 40.874045 2.823383 4.565844 \n",
"4 40.874045 2.568519 4.396687 \n",
"5 40.874045 2.336660 4.220865 \n",
"6 43.779137 2.122874 4.038383 \n",
"7 43.779137 1.928648 3.853960 \n",
"8 43.779137 1.752192 3.669479 \n",
"9 43.779137 1.591880 3.486494 \n",
"10 43.779137 1.446236 3.306276 \n",
"\n",
" CONC.Z.mol m-3 \n",
"0 2.500000 \n",
"1 2.967107 \n",
"2 3.421182 \n",
"3 3.860773 \n",
"4 4.284794 \n",
"5 4.692475 \n",
"6 5.088743 \n",
"7 5.467392 \n",
"8 5.828329 \n",
"9 6.171626 \n",
"10 6.497488 "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"display(df.describe())\n",
"display(df)\n",
"df.plot(x='time.s', y=['CONC.X.mol m-3', 'CONC.Y.mol m-3', 'CONC.Z.mol m-3'], title='Concentration over time', ylabel='Concentration (mol m-3)', xlabel='Time (s)')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "26d32598",
"metadata": {},
"source": [
"The first `display()` call shows statistical summary information about the DataFrame (count, mean, standard deviation, min/max values).\n",
"\n",
"The second `display()` shows the full DataFrame with all time steps and their corresponding values.\n",
"\n",
"The `plot()` function from pandas creates a line plot visualization:\n",
"* **x='time.s'** - Sets time as the x-axis\n",
"* **y=[...]** - Lists the species concentrations to plot on the y-axis\n",
"* **title, xlabel, ylabel** - Add labels to make the plot readable\n",
"\n",
"The `plt.show()` displays the plot in the notebook.\n",
"\n",
"**Note:** If you are running this code in a Jupyter notebook, use `display()` as shown above. If you're running this as a Python script in a terminal, replace `display()` with `print()`."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "musica",
"language": "python",
"name": "musica"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.14.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}